import logging

class ServiceLogger:
    def __init__(self, log_file="service.log"):
        """
        初始化日志记录器
        :param log_file: 日志文件名，默认为"service.log"
        """
        # 获取日志记录器实例
        self.logger = logging.getLogger(__name__)
        # 设置日志记录级别为DEBUG
        self.logger.setLevel(logging.DEBUG)

        # 创建文件日志处理器
        file_handler = logging.FileHandler(log_file)
        # 创建控制台日志处理器
        console_handler = logging.StreamHandler()

        # 设置日志格式
        formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
        # 为文件日志处理器设置格式
        file_handler.setFormatter(formatter)
        # 为控制台日志处理器设置格式
        console_handler.setFormatter(formatter)

        # 添加文件日志处理器和控制台日志处理器到日志记录器
        self.logger.addHandler(file_handler)
        self.logger.addHandler(console_handler)


    def log_container_action(self, action, status):
        """
        记录Triton容器的操作日志。

        参数:
        - self: 对象自身的引用。
        - action: 字符串，表示对容器执行的操作。
        - status: 字符串，表示操作的状态或结果。

        返回值:
        - 无。
        """
        self.logger.info(f"Triton container {action}: {status}")  # 记录操作日志

    def log_request(self, request_id, request_type, start_time, end_time, result=None):
        """
        记录请求日志。

        参数:
        - request_id: 请求的唯一标识符。
        - request_type: 请求的类型。
        - start_time: 请求开始的时间。
        - end_time: 请求结束的时间。
        - result: 请求的结果，可选参数，默认为None。

        无返回值。
        """
        duration = end_time - start_time  # 计算请求持续时间
        # 记录请求日志，包括请求ID、类型、持续时间及结果
        self.logger.info(f"Request ID: {request_id}, Type: {request_type}, Duration: {duration}s, Result: {result}")

    #记录普通日志
    def message(self, message):
        self.logger.info(message)
    def error(self,message):
        self.logger.error(message)

